<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <parent></parent>
</div>
</body>
<script src="../../js/vue.js"></script>
<script type="text/javascript">
    Vue.component('parent', {
        template: '<div><child :name="name" :count="count" @add="add"/></div>',
        data() {
            return {
                name: '句号',
                count: 18
            }
        },
        methods: {
            // 父组件通过 @事件名 监听
            // count 表示事件触发传递的参数
            add(count) {
                this.count = count
            }
        }
    })
    Vue.component('child', {
        template: '<div>我是：{{name}}， 我今年 {{count}}岁。<button @click="add">加一岁</button></div>',
        props: {
            name: {
                type: String,
                default: '句号'
            },
            count: {
                type: Number,
                default: 18
            }
        },
        methods: {
            add(){
                // add -> 触发的事件名
                // this.count + 1 -> 触发事件时传递的参数
                this.$emit('add', this.count + 1)
            }
        }
    })
    var vm = new Vue({
        el: '#app',
        data() {
            return {}
        }
    })
</script></html>
